// api/user.js - 用户相关接口封装

import request from '@/utils/request';

/**
 * 用户模块API接口
 */
const userApi = {
	/**
	 * 用户密码登录
	 * @param {Object} data - 登录参数：{username, password}
	 * @returns {Promise} - 返回Promise对象
	 */
	login(data) {
		return request.post('/auth/login', data);
	},

	/**
	 * 验证码
	 * @param {Object} data - 登录参数：{username, password}
	 * @returns {Promise} - 返回Promise对象
	 */
	getVerifyCode(data) {
		return request.post('/auth/send-code', data);
	},

	/**
	 * 用户验证码登录
	 * @param {Object} data - 登录参数：{username, password}
	 * @returns {Promise} - 返回Promise对象
	 */
	verifyLogin(data) {
		return request.post('/auth/codeLogin', data)
	},

	/**
	 * 用户注册
	 * @param {Object} data - 注册参数：{username, password, code}
	 * @returns {Promise} - 返回Promise对象
	 */
	register(data) {
		return request.post('/user/register', data);
	},

	/**
	 * 获取用户/宠物信息
	 * @param {Object} data
	 * @returns {Promise} - 返回Promise对象
	 */
	getUserInfo(data) {
		return request.post('/user/getUserInfo', data);
	},

	/**
	 * 获取用户/宠物信息
	 * @param {Object} data
	 * @returns {Promise} - 返回Promise对象
	 */
	getPetInfo(data) {
		return request.post('/pet/getPetByUserId', data);
	},

	/**
	 * 更新用户信息
	 * @param {Object} data - 用户信息：{name, avatar, gender}
	 * @returns {Promise} - 返回Promise对象
	 */
	updateUserInfo(data) {
		return request.post('/user/updateUserByUserId', data);
	},

	/**
	 * 更新宠物信息
	 * @param {Object} data - 宠物信息：{name, avatar, gender}
	 * @returns {Promise} - 返回Promise对象
	 */
	updatePetByUserId(data) {
		return request.post('/pet/updatePetByUserId', data);
	},

	/**
	 * 上传健康记录
	 * @param {Object} data - 宠物信息：{name, avatar, gender}
	 * @returns {Promise} - 返回Promise对象
	 */
	addHealthRecords(data) {
		return request.post('/healthRecords/add', data);
	},

	/**
	 * 查询健康记录
	 * @returns {Promise} - 返回Promise对象
	 */
	getHealthRecords() {
		return request.post('/healthRecords/getHealthRecordsByUserId');
	},

	/**
	 * 上传用户头像
	 * @param {String} filePath - 图片文件路径
	 * @returns {Promise} - 返回Promise对象
	 */
	uploadAvatar(filePath) {
		return request.uploadFile('/file/upload', {
			filePath: filePath,
			name: 'files',
			formData: {}
		});
	},

	/**
	 * 修改密码
	 * @param {Object} data - 修改参数：{oldPassword, newPassword}
	 * @returns {Promise} - 返回Promise对象
	 */
	changePassword(data) {
		return request.post('/user/change-password', data);
	},

	/**
	 * 退出登录
	 * @returns {Promise} - 返回Promise对象
	 */
	logout() {
		return request.post('/auth/logout');
	}
};

// api/product.js - 商品相关接口封装

/**
 * 商品模块API接口
 */
const productApi = {
	/**
	 * 获取商品列表
	 * @returns {Promise} - 返回Promise对象
	 */
	getProductList() {
		return request.post('/goods/getGoods');
	},

	/**
	 * 获取店铺列表
	 * @returns {Promise} - 返回Promise对象
	 */
	getStoreList() {
		return request.post('/shop/getShop');
	},

	/**
	 * 根据id查店铺
	 * @param {String} id - 商品ID
	 * @returns {Promise} - 返回Promise对象
	 */
	getStoreById(id) {
		return request.post('/shop/getShopById', id);
	},

	/**
	 * 获取商品详情
	 * @param {String} id - 商品ID
	 * @returns {Promise} - 返回Promise对象
	 */
	getProductDetail(id) {
		return request.post('/goods/getGoodsById', id);
	},

	/**
	 * 获取购物车详情
	 * @returns {Promise} - 返回Promise对象
	 */
	getShopCar() {
		return request.post('/shopCar/getShopCar');
	},

	/**
	 * 添加购物车
	 * @param {Object} data
	 * @returns {Promise} - 返回Promise对象
	 */
	putShopCar(data) {
		return request.post('/shopCar/add', data);
	},

	/**
	 * 获取商品分类
	 * @returns {Promise} - 返回Promise对象
	 */
	getCategories() {
		return request.post('/categories');
	}
};

/* 
 * 用户分享帖子接口
 */
const dynamics = {
	/**
	 * 发布帖子
	 * @param {Object} data
	 * @returns {Promise} - 返回Promise对象
	 */
	putPost(data) {
		return request.post('/article/add', data)
	},

	/**
	 * 获取帖子列表
	 * @returns {Promise} - 返回Promise对象
	 */
	getPost() {
		return request.post('/article/getArticle')
	},

	/**
	 * 获取帖子详情
	 * @param {String} id - 帖子ID
	 * @returns {Promise} - 返回Promise对象
	 */
	getPostDetail(id) {
		return request.post('/article/getArticleById', id)
	},

	/**
	 * 获取评论列表
	 * @param {String} articleId
	 * @returns {Promise} - 返回Promise对象
	 */
	getComments(articleId) {
		return request.post('/comment/getComment', articleId)
	},

	/**
	 * 获取二级评论列表
	 * @param {String} commentId
	 * @returns {Promise} - 返回Promise对象
	 */
	getCommentsSec(commentId) {
		return request.post('/subComment/getSubComment', commentId)
	},

	/**
	 * 加载更多回复
	 * @param {String} postId - 参数
	 * @returns {Promise} - 返回Promise对象
	 */
	getReplies(postId) {
		return request.post(``, postId)
	},

	/**
	 * 提交评论
	 * @param {Object} data - 参数
	 * @returns {Promise} - 返回Promise对象
	 */
	addComment(data) {
		return request.post('/comment/add', data)
	},

	/**
	 * 发布回复
	 * @param {Object} data - 参数
	 * @returns {Promise} - 返回Promise对象
	 */
	addReply(data) {
		return request.post('/subComment/add', data)
	},

	/**
	 * 点赞评论
	 * @param {String} postId - 参数
	 * @returns {Promise} - 返回Promise对象
	 */
	likeComment(postId) {
		return request.post(``, postId)
	},

	/**
	 * 点赞回复
	 * @param {String} postId - 参数
	 * @returns {Promise} - 返回Promise对象
	 */
	likeReply(postId) {
		return request.post(``, postId)
	},
}



// 导出模块
export {
	userApi,
	productApi,
	dynamics
};